Computers have become highly integrated in the workforce, in the home, in mobile devices, and many other places. Computers can process massive amounts of information quickly and efficiently. Software applications designed to run on computer systems allow users to perform a wide variety of functions including business applications, schoolwork, entertainment and more. Software applications are often designed to perform specific tasks, such as word processor applications for drafting documents, or email programs for sending, receiving and organizing email.
In some cases, software applications may be designed using workflows. These workflows describe interactions between various workflow activities. Each workflow activity is a portion of executable content whose execution can be triggered as specified in the workflow. Once the activities have been arranged by the user, the workflow may be processed and executed. The resulting program then executes as arranged by the user.
Workflows are generally designed within a specific workflow system. Such workflow systems, however, are typically non-extensible and only allow for specific types of “one-off” customization.